---
title: lint-staged
description: Rith Ultracite go huathoibríoch ar do chomhaid Git atá stáidithe le lint-staged
---

Ultracite chomhtháthaíonn go réidh le [lint-staged](https://github.com/okonet/lint-staged) chun do chód a fhormáidiú agus a lintáil go huathoibríoch sula ndéanann tú commit. Cinntíonn sé seo nach dtéann ach cód glan, atá formáidithe i gceart, isteach i do stór.

## Cad é lint-staged?

Is uirlis é lint-staged a rithtear linters agus formatóirí ina iomaí ar chomhaid Git atá stáidithe. Tá sé go háirithe úsáideach toisc go:

- Próiseálann sé **amháin** na comhaid atá i ndáiríre á ndéanamh commit
- Cuireann sé cosc ar chód dona formáidithe dul isteach i do stór
- Ritheann sé go tapa toisc nach seiceálann sé ach comhaid atá athraithe
- Comhtháthaíonn sé go hiomlán le hooks Git

## Conas a úsáideann Ultracite lint-staged

Nuair a ritheann tú `npx ultracite init`, más roghnaíonn tú an rogha lint-staged, déanann Ultracite go huathoibríoch na rudaí seo a leanas:

1. **Suiteálann lint-staged** mar spleáchas forbartha
2. **Cruthaíonn nó nuashonraíonn sé** do chumraíocht lint-staged
3. **Cumraíonn sé an formáidóir** chun rith ar na cineálacha comhad ábhartha

Ritheann an chumraíocht réamhshocraithe `npx ultracite fix` ar na cineálacha comhad seo:
- Comhaid JavaScript/TypeScript (`.js`, `.jsx`, `.ts`, `.tsx`)
- Comhaid JSON (`.json`, `.jsonc`)
- Comhaid CSS (`.css`, `.scss`)
- Comhaid Markdown (`.md`, `.mdx`)

## Formáidí Cumraíochta Tacaithe

Tacaíonn comhtháthú lint-staged de chuid Ultracite le gach formáid chaighdeánach chumraíochta lint-staged:

### package.json

```json title="package.json"
{
  "lint-staged": {
    "*.{js,jsx,ts,tsx,json,jsonc,css,scss,md,mdx}": ["npx ultracite fix"]
  }
}
```

### .lintstagedrc.json

```json title=".lintstagedrc.json"
{
  "*.{js,jsx,ts,tsx,json,jsonc,css,scss,md,mdx}": ["npx ultracite fix"]
}
```

### .lintstagedrc.js (CommonJS)

```javascript title=".lintstagedrc.js"
module.exports = {
  "*.{js,jsx,ts,tsx,json,jsonc,css,scss,md,mdx}": ["npx ultracite fix"]
};
```

### .lintstagedrc.mjs (ES Modules)

```javascript title=".lintstagedrc.mjs"
export default {
  "*.{js,jsx,ts,tsx,json,jsonc,css,scss,md,mdx}": ["npx ultracite fix"]
};
```

### .lintstagedrc.yaml

```yaml title=".lintstagedrc.yaml"
"*.{js,jsx,ts,tsx,json,jsonc,css,scss,md,mdx}":
  - 'npx ultracite fix'
```

## Meascadh Chliste Cumraíochta

Má tá cumraíocht lint-staged agat cheana féin, déanfaidh Ultracite:

- **Braithfidh sé** ar fhormáid do chumraíochta atá ann cheana
- **Meascfaidh sé** rialacha Ultracite le do rialacha atá ann cheana
- **Coinneoidh sé** do chumraíochtaí saincheaptha
- **Nuashonróidh sé** an comhad in áit

Ciallaíonn sé seo gur féidir leat `npx ultracite init` a rith go sábháilte fiú má tá lint-staged socraithe agat cheana féin.

## Conas a Oibríonn sé

1. **Hook réamh-commit**: rithíonn lint-staged sula ndéanann tú commit gach uair tríd an Husky
2. **Aimsiú comhaid**: próiseálann sé **amháin** comhaid stáidithe a chomhlíonann na patrúin
3. **Ordú formáide**: rithtear `npx ultracite fix` ar gach comhad a oireann
4. **Deisiú uathoibríoch**: Déanann Biome deisiúcháin go huathoibríoch ar fhadhbanna nuair is féidir
5. **Ath-stáidiú**: Déantar comhaid deartha a ath-stáidiú go huathoibríoch le haghaidh commit

## Cumraíocht Láimhe

Má theastaíonn uait do shocruithe lint-staged a shaincheapadh, is féidir leat an chumraíocht a mhodhnú tar éis an tosaíocht:

```json title="package.json"
{
  "lint-staged": {
    "*.{js,jsx,ts,tsx}": ["npx ultracite fix", "npm run test:unit"],
    "*.{json,jsonc}": ["npx ultracite fix"],
    "*.{css,scss}": ["npx ultracite fix", "npm run test:styles"],
    "*.{md,mdx}": ["npx ultracite fix"]
  }
}
```

## Comhtháthú Orduithe

Oibríonn an chomhtháthú lint-staged le struchtúr orduithe Ultracite mar seo:

- **`npx ultracite fix`**: Ritheann Biome le deisiú uathoibríoch (úsáidtear é ag lint-staged)
- **`npx ultracite check`**: Ritheann Biome gan deisiú uathoibríoch (do CI/seiceálacha láimhe)

## Réiteach Fadhbanna

### Cumraíocht Níor Aimsear
Má fheiceann tú earráidí faoi chumraíocht lint-staged nach bhfuil ann:

```bash
npx ultracite init  # Rith an túsghníomhú arís
```

### Fadhbanna ESM/CommonJS
Braithfidh Ultracite go huathoibríoch cineál do thionscadail agus cruthóidh sé an fhormáid chumraíochta chuí:

- **Tionscadal ESM** (le `"type": "module"` i package.json) faigheann cumraíochtaí `.mjs`
- **Tionscadal CommonJS** faigheann cumraíochtaí `.cjs`
- **Cúlú**: Cruthaítear `.lintstagedrc.json` má théann an braiteadh modúl ar strae

### Coinbhleachtaí le Cumraíocht atá ann cheana
Má tá cumraíochtaí casta agat atá ann cheana, b’fhéidir go mbeidh ort iad a mheascadh de láimh:

1. Déan cúltaca de do chumraíocht lint-staged atá ann cheana
2. Rith `npx ultracite init`
3. Measc de láimh aon rialacha saincheaptha is gá duit a choimeád

## Cleachtais Is Fearr

1. **Coimeád é tapa**: Rith ach na seiceálacha riachtanacha i lint-staged
2. **Úsáid patrúin shonracha**: Díriú ach ar na comhaid a theastaíonn próiseáil uathu
3. **Comhcheangail le CI**: Úsáid lint-staged le haghaidh seiceálacha tapa áitiúla, agus déan lintáil iomlán i CI
4. **Tástáil do shocrúcháin**: Déan commit tástála chun a chinntiú go n-oibríonn gach rud

## Gaolmhara

- [Comhtháthú Husky](/integration/husky) - socrú hooks Git
- [Cumraíocht](/configuration) - roghanna cumraíochta Biome
- [Socrú](/setup) - socrú tosaigh an tionscadail